import { defineStore } from "pinia";

const useCounterStore = defineStore("counter", {
  state: () => {
    // 返回值必须是对象
    // 返回的对象，就是当前模块管理的状态数据
    return {
      count: 0,
      age: 18,
    };
  },
  getters: {
    oddOrEven(state) {
      // return state.count % 2 === 0 ? "偶数" : "奇数";
      return (state.count & 1) === 0 ? "偶数" : "奇数";
    },
  },
  actions: {
    // action能接受任意多个参数，所有参数都是外面触发action函数传递的参数
    // 触发action函数传递的参数，就是当前action函数能接受到的值
    increment(num: number) {
      // 更新数据
      // 通过this可以访问当前模块所有数据
      // this.count / this.oddOrEven / this.decrement()
      this.count += num;
    },
    decrement(num: number) {
      this.count -= num;
    },
  },
  // 没有mutations
});

export default useCounterStore;
